In a multi-sequencer computer system or computer platform, technical as well as economic constraints may justify an asymmetric organization of specialized computing resources or processors or processing units. In this application, a processor or processing unit may also be referred to, hereinafter, as a sequencer or a processing core. In general, an operating system may not scale well on a computer platform having implemented a large number of sequencers. In particular, the operating system may not be able to handle an asymmetric organization of multiple sequencers efficiently.
The organization of a computer platform may be asymmetric with regard to the types of sequencers that the platform has implemented. For example, there may be sequencers that are “visible” to the operating system (OS), referred to herein as OS-visible sequencers, and are managed by OS kernels. The OS kernels may be able to control the privilege states of OS-visible sequencers and to provide exception handlers to process interrupts and/or exceptions during execution of threads by the OS-visible sequencers. On the other hand, there may be sequencers that are “invisible” to the OS, referred to herein as OS-sequestered sequencers. OS-sequestered sequencers may not execute operating system codes and may be managed by a sequencer manager.
Recently, a multi-sequencer multiple-instruction-flow-multiple-dataflow (MIMD) ISA (Instruction Set Architecture) extension has been proposed that defines a set of instructions allowing OS-sequestered sequencers to be treated as ring-3 user-level architectural resources for concurrent execution of multiple user-level threads in the single OS thread context. Therefore, OS-sequestered sequencers become available to user-level applications. By using the user-level multi-sequencer MIMD ISA extension, an application thread running on an OS-visible sequencer may be able to use the additional sequencers which are sequestered from the OS. The multi-sequencer MIMD ISA extension allows applications to scale, independent of the OS, for a large number of sequencers by submitting work to sequencers that may or may not be visible to the operating system. In the mean time, the operating system may continue to run on a subset of sequencers that are visible to the OS. The user-level MIMD ISA extension allows execution of user-level threads to run on OS-sequestered sequencers, and the user-level threads may run concurrently with the OS thread that created the user-level threads and runs on an OS-visible sequencer.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.